package cn.zjyj.module.zjyj.controller.admin.device.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 设备新增/修改 Request VO")
@Data
public class DeviceSaveReqVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29940")
    private Long id;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @NotEmpty(message = "名称不能为空")
    private String name;

    @Schema(description = "供应商id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1690")
    @NotNull(message = "供应商id不能为空")
    private Long supplierId;

    @Schema(description = "设备组id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30501")
    @NotNull(message = "设备组id不能为空")
    private Long groupId;

    @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "品牌不能为空")
    private String brand;

    @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "型号不能为空")
    private String model;

    @Schema(description = "设备规格", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "设备规格不能为空")
    private String specification;

    @Schema(description = "是否特种设备", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否特种设备不能为空")
    private Integer isSpecialEquipment;

    @Schema(description = "使用描述", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "使用描述不能为空")
    private String useDescribe;

    @Schema(description = "是否需要检修", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否需要检修不能为空")
    private Integer isNeedRepair;

    @Schema(description = "检修周期，单位：天", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "检修周期，单位：天不能为空")
    private Integer repairCycle;

    @Schema(description = "检修许可证", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "检修许可证不能为空")
    private String repairPermitCard;

    @Schema(description = "检修原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "不香")
    @NotEmpty(message = "检修原因不能为空")
    private String repairReason;

    @Schema(description = "是否需要维护", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否需要维护不能为空")
    private Integer isNeedMaintain;

    @Schema(description = "维护周期，单位：天", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "维护周期，单位：天不能为空")
    private Integer maintainCycle;

    @Schema(description = "是否需要计量", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否需要计量不能为空")
    private Integer isNeedFitMetering;

    @Schema(description = "计量周期，单位：天", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "计量周期，单位：天不能为空")
    private Integer fitMeteringCycle;

}